(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
h(e(x), y) → h(d(x, y), s(y))
d(g(g(0, x), y), s(z)) → g(e(x), d(g(g(0, x), y), z))
d(g(g(0, x), y), 0) → e(y)
d(g(0, x), y) → e(x)
d(g(x, y), z) → g(d(x, z), e(y))
g(e(x), e(y)) → e(g(x, y))
Rewrite Strategy: INNERMOST
(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)
Converted CpxTRS to CDT
(2) Obligation:
Complexity Dependency Tuples Problem
Rules:
h(e(z0), z1) → h(d(z0, z1), s(z1))
d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))
Tuples:
H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2), G(g(0, z0), z1), G(0, z0))
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
S tuples:
H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2), G(g(0, z0), z1), G(0, z0))
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
K tuples:none
Defined Rule Symbols:
h, d, g
Defined Pair Symbols:
H, D, G
Compound Symbols:
c, c1, c4, c5
(3) CdtGraphRemoveTrailingProof (BOTH BOUNDS(ID, ID) transformation)
Removed 2 trailing tuple parts
(4) Obligation:
Complexity Dependency Tuples Problem
Rules:
h(e(z0), z1) → h(d(z0, z1), s(z1))
d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))
Tuples:
H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1))
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
S tuples:
H(e(z0), z1) → c(H(d(z0, z1), s(z1)), D(z0, z1))
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
K tuples:none
Defined Rule Symbols:
h, d, g
Defined Pair Symbols:
H, D, G
Compound Symbols:
c, c4, c5, c1
(5) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
H(
e(
z0),
z1) →
c(
H(
d(
z0,
z1),
s(
z1)),
D(
z0,
z1)) by
H(e(g(g(0, z0), z1)), s(z2)) → c(H(g(e(z0), d(g(g(0, z0), z1), z2)), s(s(z2))), D(g(g(0, z0), z1), s(z2)))
H(e(g(g(0, z0), z1)), 0) → c(H(e(z1), s(0)), D(g(g(0, z0), z1), 0))
H(e(g(0, z0)), z1) → c(H(e(z0), s(z1)), D(g(0, z0), z1))
H(e(g(z0, z1)), z2) → c(H(g(d(z0, z2), e(z1)), s(z2)), D(g(z0, z1), z2))
(6) Obligation:
Complexity Dependency Tuples Problem
Rules:
h(e(z0), z1) → h(d(z0, z1), s(z1))
d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))
Tuples:
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
H(e(g(g(0, z0), z1)), s(z2)) → c(H(g(e(z0), d(g(g(0, z0), z1), z2)), s(s(z2))), D(g(g(0, z0), z1), s(z2)))
H(e(g(g(0, z0), z1)), 0) → c(H(e(z1), s(0)), D(g(g(0, z0), z1), 0))
H(e(g(0, z0)), z1) → c(H(e(z0), s(z1)), D(g(0, z0), z1))
H(e(g(z0, z1)), z2) → c(H(g(d(z0, z2), e(z1)), s(z2)), D(g(z0, z1), z2))
S tuples:
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
G(e(z0), e(z1)) → c5(G(z0, z1))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
H(e(g(g(0, z0), z1)), s(z2)) → c(H(g(e(z0), d(g(g(0, z0), z1), z2)), s(s(z2))), D(g(g(0, z0), z1), s(z2)))
H(e(g(g(0, z0), z1)), 0) → c(H(e(z1), s(0)), D(g(g(0, z0), z1), 0))
H(e(g(0, z0)), z1) → c(H(e(z0), s(z1)), D(g(0, z0), z1))
H(e(g(z0, z1)), z2) → c(H(g(d(z0, z2), e(z1)), s(z2)), D(g(z0, z1), z2))
K tuples:none
Defined Rule Symbols:
h, d, g
Defined Pair Symbols:
D, G, H
Compound Symbols:
c4, c5, c1, c
(7) CdtUnreachableProof (EQUIVALENT transformation)
The following tuples could be removed as they are not reachable from basic start terms:
D(g(z0, z1), z2) → c4(G(d(z0, z2), e(z1)), D(z0, z2))
D(g(g(0, z0), z1), s(z2)) → c1(G(e(z0), d(g(g(0, z0), z1), z2)), D(g(g(0, z0), z1), z2))
H(e(g(g(0, z0), z1)), s(z2)) → c(H(g(e(z0), d(g(g(0, z0), z1), z2)), s(s(z2))), D(g(g(0, z0), z1), s(z2)))
H(e(g(g(0, z0), z1)), 0) → c(H(e(z1), s(0)), D(g(g(0, z0), z1), 0))
H(e(g(0, z0)), z1) → c(H(e(z0), s(z1)), D(g(0, z0), z1))
H(e(g(z0, z1)), z2) → c(H(g(d(z0, z2), e(z1)), s(z2)), D(g(z0, z1), z2))
(8) Obligation:
Complexity Dependency Tuples Problem
Rules:
h(e(z0), z1) → h(d(z0, z1), s(z1))
d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))
Tuples:
G(e(z0), e(z1)) → c5(G(z0, z1))
S tuples:
G(e(z0), e(z1)) → c5(G(z0, z1))
K tuples:none
Defined Rule Symbols:
h, d, g
Defined Pair Symbols:
G
Compound Symbols:
c5
(9) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)
Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.
G(e(z0), e(z1)) → c5(G(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
G(e(z0), e(z1)) → c5(G(z0, z1))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(G(x1, x2)) = [2]x1
POL(c5(x1)) = x1
POL(e(x1)) = [1] + x1
(10) Obligation:
Complexity Dependency Tuples Problem
Rules:
h(e(z0), z1) → h(d(z0, z1), s(z1))
d(g(g(0, z0), z1), s(z2)) → g(e(z0), d(g(g(0, z0), z1), z2))
d(g(g(0, z0), z1), 0) → e(z1)
d(g(0, z0), z1) → e(z0)
d(g(z0, z1), z2) → g(d(z0, z2), e(z1))
g(e(z0), e(z1)) → e(g(z0, z1))
Tuples:
G(e(z0), e(z1)) → c5(G(z0, z1))
S tuples:none
K tuples:
G(e(z0), e(z1)) → c5(G(z0, z1))
Defined Rule Symbols:
h, d, g
Defined Pair Symbols:
G
Compound Symbols:
c5
(11) SIsEmptyProof (EQUIVALENT transformation)
The set S is empty
(12) BOUNDS(O(1), O(1))